package console

// js操作封装

import (
	"log"

	jsvmcore "gitee.com/xiaoa7/jsvm-core"
	"github.com/dop251/goja"
)

// 设置数据
func (r Console) Info(params ...interface{}) error {
	data := append([]interface{}{"[info]"}, params...)
	log.Println(data...)
	return nil
}

// 设置数据
func (r Console) Debug(params ...interface{}) error {
	data := append([]interface{}{"[debug]"}, params...)
	log.Println(data...)
	return nil
}

// 设置数据
func (r Console) Fail(params ...interface{}) error {
	data := append([]interface{}{"[Fail]"}, params...)
	log.Println(data...)
	return nil
}

func init() {
	//console操作jsvm绑定
	jsvmcore.RegisterObject("console", map[string]jsvmcore.HandleFn{
		"info": func(vm *jsvmcore.JsVM) jsvmcore.JsVmFn {
			return func(params ...interface{}) goja.Value {
				_console.Info(params...)
				return vm.State.ToValue("ok")
			}
		},
		"debug": func(vm *jsvmcore.JsVM) jsvmcore.JsVmFn {
			return func(params ...interface{}) goja.Value {
				_console.Debug(params...)
				return vm.State.ToValue("ok")
			}
		},
		"fail": func(vm *jsvmcore.JsVM) jsvmcore.JsVmFn {
			return func(params ...interface{}) goja.Value {
				_console.Fail(params...)
				return vm.State.ToValue("ok")
			}
		},
	})
}
